<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                template="./templates/templateHome.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:p="http://primefaces.org/ui"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:f="http://xmlns.jcp.org/jsf/core">

    <ui:define name="title">
        Recurso
    </ui:define>

    <ui:define name="content">

        <p:growl id="growlRecurso" life="5000" showDetail="true"/>

        <h:form id="formBtnCriarRecurso" rendered="#{loginBean.exibeFuncaoAdm}">
            <p:commandButton id="btnCriarRecurso" title="Criar um recurso" label="Criar recurso" value="Criar"
                             icon="icon-criar" oncomplete="dialogCriarRecurso.show()"/>
        </h:form>

        <h:form id="formDataTableRecurso" rendered="#{loginBean.exibeFuncaoAdm}">
            <center>
                <p:dataTable id="dataTableRecurso" selectionMode="single" paginator="true" rows="10"
                             paginatorPosition="bottom" paginatorTemplate="{CurrentPageReport} {FirstPageLink}
                             {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             rowKey="#{recurso.nome}" selection="#{recursoBean.recursoSelecionado}"
                             var="recurso" value="#{recursoBean.lista}" paginatorAlwaysVisible="false">

                    <f:facet name="header">  
                        Lista de Recursos  
                    </f:facet>

                    <p:column headerText="Nome" style="width:20%">
                        <h:outputText value="#{recurso.nome}"/>
                    </p:column>

                    <p:column headerText="Imagem" style="width:20%">
                        <p:graphicImage value="/resources/images/#{recurso.nome}.jpg"/>
                    </p:column>

                    <p:column headerText="Observação" style="width:24%">
                        <h:outputText value="#{recurso.observacao}"/>
                    </p:column>

                    <p:column headerText="Tipo" style="width:24%">
                        <h:outputText value="#{recurso.tipo}"/>
                    </p:column>

                    <p:column headerText="Estado" style="width:10%">
                        <h:outputText value="#{recurso.estado}"/>
                    </p:column>

                    <p:column headerText="Ações" style="width:10%">
                        <p:panelGrid columns="2">
                            <p:commandButton id="btnAlterarRecurso" title="Alterar o recurso" label="Alterar" value="Alterar"
                                             icon="icon-editar" oncomplete="dialogAlterarRecurso.show()"
                                             update=":formAlterarRecurso">
                                <f:setPropertyActionListener value="#{recurso}" target="#{recursoBean.recursoSelecionado}"/>
                            </p:commandButton>
                            <p:commandButton id="btnExcluirRecurso" title="Excluir o recurso" label="Cancelar" value="Excluir"
                                             icon="icon-excluir" oncomplete="dialogExcluirRecurso.show()"
                                             update=":formExcluirRecurso">
                                <f:setPropertyActionListener value="#{recurso}" target="#{recursoBean.recursoSelecionado}"/>
                            </p:commandButton>
                        </p:panelGrid>
                    </p:column>

                </p:dataTable>
            </center>
        </h:form>

        <h:form id="formCriarRecurso">
            <p:dialog id="dialogCriarRecurso" header="Criar Recurso" widgetVar="dialogCriarRecurso" resizable="false"
                      showEffect="size" hideEffect="blind" modal="true" draggable="false">
                <h:panelGrid id="panelGridCriarRecurso" columns="2" cellpadding="4" style="margin:0 auto;">

                    <h:outputLabel for="tipoCriarRecurso" value="* Tipo"/>
                    <p:selectOneMenu id="tipoCriarRecurso" required="true"
                                     requiredMessage="Favor informar o tipo do recurso."
                                     value="#{recursoBean.recursoSelecionado.tipo}">  
                        <f:selectItem itemLabel="- Selecione -" itemValue=""/>
                        <f:selectItem itemLabel="Recurso Multimídia" itemValue="Recurso Multimídia"/>  
                        <f:selectItem itemLabel="Sala de Aula" itemValue="Sala de Aula"/>
                        <f:selectItem itemLabel="Laboratório de informática" itemValue="Laboratório de informática"/>
                        <f:selectItem itemLabel="Transporte veicular" itemValue="Transporte veicular"/>
                        <p:message for="tipoCriarRecurso"/>
                    </p:selectOneMenu>

                    <h:outputLabel for="nomeCriarRecurso" value="* Nome:"/>
                    <p:inputText id="nomeCriarRecurso" title="Nome do recurso" label="Nome" required="true"
                                 requiredMessage="Favor informar o nome do recurso."
                                 value="#{recursoBean.recursoSelecionado.nome}">
                        <p:watermark for="nomeCriarRecurso" value="Recursos da instituição"/>
                        <p:message for="nomeCriarRecurso"/>
                    </p:inputText>

                    <h:outputLabel for="obsCriarRecurso" value="Observação:"/>
                    <p:inputText id="obsCriarRecurso" title="Observação do recurso" label="Observação" required="false"
                                 value="#{recursoBean.recursoSelecionado.observacao}">
                        <p:watermark for="obsCriarRecurso" value="Observação para o recurso"/>
                    </p:inputText>

                    <h:outputLabel for="estadoCriarRecurso" value="* Estado"/>
                    <p:selectOneMenu id="estadoCriarRecurso" required="true"
                                     requiredMessage="Favor informar o estado do recurso."
                                     value="#{recursoBean.recursoSelecionado.estado}">
                        <f:selectItem itemLabel="- Selecione -" itemValue=""/>
                        <f:selectItem itemLabel="Ativado" itemValue="A"/>  
                        <f:selectItem itemLabel="Desativado" itemValue="D"/>
                        <p:message for="estadoCriarRecurso"/>
                    </p:selectOneMenu>

                    <f:facet name="footer">
                        <p:separator/>
                        <center>
                            <p:commandButton id="btnAceitarCriarRecurso" title="Salvar o recurso" label="Salvar" value="Salvar"
                                             icon="icon-salvar" oncomplete="dialogCriarRecurso.hide()"
                                             update=":growlRecurso, :formDataTableRecurso"
                                             validateClient="true"
                                             actionListener="#{recursoBean.btnCriarRecurso(actionEvent)}"/>
                            <p:commandButton id="btnCancelarCriarRecurso" title="Cancelar" label="Cancelar" value="Cancelar"
                                             icon="icon-cancelar" oncomplete="dialogCriarRecurso.hide()"/>
                        </center>
                    </f:facet>

                </h:panelGrid>
            </p:dialog>
        </h:form>

        <h:form id="formAlterarRecurso">
            <p:dialog id="dialogAlterarRecurso" header="Alterar Recurso" widgetVar="dialogAlterarRecurso" resizable="false"
                      showEffect="fade" hideEffect="explode" modal="true" draggable="false">
                <h:inputHidden value="#{recursoBean.recursoSelecionado.nome}"/>
                <h:inputHidden value="#{recursoBean.recursoSelecionado.tipo}"/>

                <h:panelGrid id="panelGridAlterarRecurso" columns="2" cellpadding="4" style="margin:0 auto;">

                    <h:outputLabel for="tipoAlterarRecurso" value="Tipo"/>
                    <p:outputLabel id="tipoAlterarRecurso" value="#{recursoBean.recursoSelecionado.tipo}"/>

                    <h:outputLabel for="nomeAlterarRecurso" value="Nome:"/>
                    <p:outputLabel id="nomeAlterarRecurso" value="#{recursoBean.recursoSelecionado.nome}"/>

                    <h:outputLabel for="obsAlterarRecurso" value="Observação:"/>
                    <p:inputText id="obsAlterarRecurso" title="Observação do recurso" label="Observação" required="false"
                                 value="#{recursoBean.recursoSelecionado.observacao}">
                        <p:watermark for="obsAlterarRecurso" value="Observação para o recurso"/>
                    </p:inputText>

                    <h:outputLabel for="estadoAlterarRecurso" value="* Estado"/>
                    <p:selectOneMenu id="estadoAlterarRecurso" required="true"
                                     requiredMessage="Favor informar o estado do recurso."
                                     value="#{recursoBean.recursoSelecionado.estado}">
                        <f:selectItem itemLabel="- Selecione -" itemValue=""/>
                        <f:selectItem itemLabel="Ativado" itemValue="A"/>  
                        <f:selectItem itemLabel="Desativado" itemValue="D"/>
                        <p:message for="estadoAlterarRecurso"/>
                    </p:selectOneMenu>

                    <f:facet name="footer">
                        <p:separator/>
                        <center>
                            <p:commandButton id="btnAceitarAlterarRecurso" title="Alterar o recurso" label="Alterar" value="Alterar"
                                             icon="icon-salvar" oncomplete="dialogAlterarRecurso.hide()"
                                             update=":growlRecurso, :formDataTableRecurso"
                                             validateClient="true"
                                             actionListener="#{recursoBean.btnAlterarRecurso(actionEvent)}"/>
                            <p:commandButton id="btnCancelarAlterarRecurso" title="Cancelar a alteração" label="Cancelar" value="Cancelar"
                                             icon="icon-cancelar" oncomplete="dialogAlterarRecurso.hide()"/>
                        </center>
                    </f:facet>

                </h:panelGrid>
            </p:dialog>
        </h:form>

        <h:form id="formExcluirRecurso">
            <p:confirmDialog id="confirmDialogRecurso" header="Exclusão de Recurso" widgetVar="dialogExcluirRecurso"
                             showEffect="bounce" hideEffect="drop" severity="alert"
                             message="Tem certeza que deseja excluir o recurso #{recursoBean.recursoSelecionado.nome}?">
                <h:inputHidden value="#{recursoBean.recursoSelecionado.nome}"/>

                <center>
                    <p:commandButton id="confirmarExclusaoRecurso" title="Confirmar a exclusão do recurso" label="Excluir" value="Confirmar"
                                     icon="icon-confirmar" oncomplete="dialogExcluirRecurso.hide()"
                                     update=":growlRecurso, :formDataTableRecurso"
                                     actionListener="#{recursoBean.btnExcluirRecurso(actionEvent)}"/>
                    <p:commandButton id="cancelarExclusaoRecurso" title="Cancelar a exclusão do recurso" label="Cancelar" value="Cancelar"
                                     icon="icon-cancelar" oncomplete="dialogExcluirRecurso.hide()"/>
                </center>

            </p:confirmDialog>
        </h:form>

    </ui:define>

</ui:composition>